package com.tianhua.javs.core.annotations;

import java.lang.annotation.ElementType;
import java.lang.annotation.Retention;
import java.lang.annotation.RetentionPolicy;
import java.lang.annotation.Target;

/**
 * Description:
 * date: 2022/2/12
 *
 * @author shenshuai
 * @version 1.0.0
 * @since JDK 1.8
 */
@Target({ElementType.TYPE})
@Retention(RetentionPolicy.RUNTIME)
public @interface Segment {
    /**
     * javs代码段对应的javsscrpit标示
     * @return
     */
    String tag() default "";

    /**
     * javs代码段对应的脚本处理函数bean
     * @return
     */
    String scriptFuncBean() default "";

    /**
     * bean的处理顺序
     * @return
     */
    int order() default 0;


    /**
     * 代码段对应key在转换java原生代码的时候需要加入的后缀，用来补充
     * 括号,满足Java原生代码的语法
     * @return
     */
    String keySuffix() default "";

    /**
     * 代码段对应value在转换Java原生代码的时候需要加入的后缀，用来补充括号，满足Java原生代码的语法
     * @return
     */
    String valueSuffix() default "";

    /**
     * 当前代码段需要导入的相关包
     * @return
     */
    String [] packageArr() default "";

    /**
     * 函数标签
     * @return
     */
    String funcTag() default "";
}
